package com.itheima.features.optional.demo01;

import java.util.Optional;

/**
 * 演示：Optional类中的其他的方法
 */
public class OptionalDemo02 {

    /**
     * public static <T> Optional<T> of(T value)                    返回一个Optional对象，封装的是非null值的对象
     * public T get()                                               如果存在值，返回值，否则抛出 NoSuchElementException
     * public boolean isPresent()                                   判断Optional所封装的对象是否不为空，如果不为空返回true , 否则返回false
     * public static <T> Optional<T> ofNullable(T value)            返回一个Optional对象，Optional封装的值对象可以是null也可以不是null
     */
    public static void main(String[] args) {

        // 创建一个学生对象
        Student s = null ; // new Student("张三" , 23) ;

        // public static <T> Optional<T> of(T value)                 返回一个Optional对象，封装的是非null值的对象
        // Optional<Student> optional = Optional.of(s);

        // public static <T> Optional<T> ofNullable(T value)         返回一个Optional对象，Optional封装的值对象可以是null也可以不是null
        Optional<Student> optional = Optional.ofNullable(s);

        // public boolean isPresent()                                判断Optional所封装的对象是否不为空，如果不为空返回true , 否则返回false
        // System.out.println(optional.isPresent());

        // public T get()                                             如果存在值，返回值，否则抛出 NoSuchElementException
        if(optional.isPresent()) {
            Student student = optional.get();
            System.out.println(student);
        }

    }

}
